package com.umpay.dto.merBusi.req.withdrawal;

import org.hibernate.validator.constraints.NotEmpty;

import com.umpay.annotation.Pattern;
import com.umpay.dto.merBusi.req.CommonBusiReq;

/* ******************  类说明  *********************
 * class       :  MemberPaymentBusiReq
 * @author     :  ncc
 * @date       :  2018年7月10日 下午3:38:36
 * @version    :  1.0  
 * description :  会员余额付款请求类
 * @see        :                        
 * ************************************************/   
public class MemberPaymentBusiReq extends CommonBusiReq {
	@NotEmpty(message = "商户号不能为空")
	@Pattern(message = "商户号格式不正确")
	private String merId;//	商户号	  变长8	Y	商户在支付平台分配的商户号\\d{4,8}
	@NotEmpty(message = "业务产品号不能为空")
	@Pattern(message = "业务产品号格式不正确")
	private String bProductId;//业务产品号	变长8	 Y	商户业务产品号(B)\\w{7}
	@NotEmpty(message = "支付产品号不能为空")
	@Pattern(message = "支付产品号格式不正确")
	private String pProductId;//原子产品号	变长8	 Y	商户原子产品号(P)\\w{7}
	@NotEmpty(message = "商户订单号不能为空")
	@Pattern(message = "商户订单号格式不正确")
	private String orderId;//	商户订单号	变长20	Y	商户订单号支持数字、英文字母，其他字符不建议使用 长度4至20位
	@NotEmpty(message = "商户订单日期不能为空")
	@Pattern(message = "商户订单日期格式不正确")
	private String orderDate;//	商户订单日期	定长8	Y	商户生成订单的日期，格式YYYYMMDD
	@NotEmpty(message = "会员号不能为空")
	@Pattern(message = "会员号格式不正确")
	private String userId;//	联动会员用户号	变长20	Y
	@NotEmpty(message = "会员类型不能为空")
	@Pattern(message = "会员类型格式不正确")
	private String userType;//	会员类型	定长1	Y	1-个人；2-个体；3-企业
	@NotEmpty(message = "账户类型不能为空")
	@Pattern(message = "账户类型格式不正确")
	private String accType;// 账户类型	定长3	Y	208:对公现金账户 	209:对私现金账户
	@NotEmpty(message = "收款方账户属性不能为空")
	@Pattern(message = "收款方账户属性格式不正确")
	private String recvBankAccPro; //	收款方账户属性	定长1	0：对私，1：对公	Y
	@NotEmpty(message = "卡号不能为空")
	@Pattern(message="卡号格式不正确")
	private String cardId; //卡号	变长256	GBK编码后使用联动公钥进行RSA加密，最后使用BASE64编码	Y
	@NotEmpty(message = "银行编号不能为空")
	@Pattern(message="银行编号格式不正确")
	private String gateId; //	银行编号	变长8	后续提供	Y
	@NotEmpty(message = "开卡单位名称不能为空")
	@Pattern(message="开卡单位名称格式不正确")
	private String bankAccountName;  //开卡单位名称	变长128	GBK编码后使用联动公钥进行RSA加密，最后使用BASE64编码	个人：传入个人姓名	个体和企业：传入法人姓名	Y
	@Pattern(message="开户行支行全称格式不正确")
	private String bankBranchName; //	开户行支行全称	变长60	对公付款必传	N
	@Pattern(message="收款方手机号格式不正确")
	private String mobileId; //收款方手机号	定长 11	收款方手机号	N
	@Pattern(message="开户行所在省格式不正确")
	private String bankProvName; //开户行所在省	变长128	（接口预留字段，目前无需关注）	N
	@Pattern(message="开户行所在省格式不正确")
	private String bankAreaName; //开户行所在市	变长128	（接口预留字段，目前无需关注）	N
	@NotEmpty(message = "付款金额不能为空")
	@Pattern(message = "付款金额格式不正确")
	private String amount;//	提现金额	变长13	Y
	@Pattern(message = "服务器异步通知页面路径格式不正确")
	private String notifyUrl;//	服务器异步通知路径	变长128	N	交易完成后，系统会按照此地址将交易结果以后台的方式发送到商户网站
	@Pattern(message = "备注信息格式不正确")
	protected String remark;//备注信息	变长64
	public String getRpid() {
		return rpid;
	}
	public void setRpid(String rpid) {
		this.rpid = rpid;
	}
	public String getMerId() {
		return merId;
	}
	public void setMerId(String merId) {
		this.merId = merId;
	}
	public String getbProductId() {
		return bProductId;
	}
	public void setbProductId(String bProductId) {
		this.bProductId = bProductId;
	}
	public String getpProductId() {
		return pProductId;
	}
	public void setpProductId(String pProductId) {
		this.pProductId = pProductId;
	}
	public String getOrderId() {
		return orderId;
	}
	public void setOrderId(String orderId) {
		this.orderId = orderId;
	}
	public String getOrderDate() {
		return orderDate;
	}
	public void setOrderDate(String orderDate) {
		this.orderDate = orderDate;
	}
	public String getUserId() {
		return userId;
	}
	public void setUserId(String userId) {
		this.userId = userId;
	}
	public String getUserType() {
		return userType;
	}
	public void setUserType(String userType) {
		this.userType = userType;
	}
	public String getAccType() {
		return accType;
	}
	public void setAccType(String accType) {
		this.accType = accType;
	}
	public String getAmount() {
		return amount;
	}
	public void setAmount(String amount) {
		this.amount = amount;
	}
	public String getNotifyUrl() {
		return notifyUrl;
	}
	public void setNotifyUrl(String notifyUrl) {
		this.notifyUrl = notifyUrl;
	}
	public String getRemark() {
		return remark;
	}
	public void setRemark(String remark) {
		this.remark = remark;
	}
	public String getRecvBankAccPro() {
		return recvBankAccPro;
	}
	public void setRecvBankAccPro(String recvBankAccPro) {
		this.recvBankAccPro = recvBankAccPro;
	}
	public String getCardId() {
		return cardId;
	}
	public void setCardId(String cardId) {
		this.cardId = cardId;
	}
	public String getGateId() {
		return gateId;
	}
	public void setGateId(String gateId) {
		this.gateId = gateId;
	}
	public String getBankAccountName() {
		return bankAccountName;
	}
	public void setBankAccountName(String bankAccountName) {
		this.bankAccountName = bankAccountName;
	}
	public String getBankBranchName() {
		return bankBranchName;
	}
	public void setBankBranchName(String bankBranchName) {
		this.bankBranchName = bankBranchName;
	}
	public String getMobileId() {
		return mobileId;
	}
	public void setMobileId(String mobileId) {
		this.mobileId = mobileId;
	}
	public String getBankProvName() {
		return bankProvName;
	}
	public void setBankProvName(String bankProvName) {
		this.bankProvName = bankProvName;
	}
	public String getBankAreaName() {
		return bankAreaName;
	}
	public void setBankAreaName(String bankAreaName) {
		this.bankAreaName = bankAreaName;
	}
	@Override
	public String toString() {
		return "MemberPaymentBusiReq [merId=" + merId + ", bProductId=" + bProductId + ", pProductId=" + pProductId
				+ ", orderId=" + orderId + ", orderDate=" + orderDate + ", userId=" + userId + ", userType=" + userType
				+ ", accType=" + accType + ", recvBankAccPro=" + recvBankAccPro + ", cardId=" + cardId + ", gateId="
				+ gateId + ", bankAccountName=" + bankAccountName + ", bankBranchName=" + bankBranchName + ", mobileId="
				+ mobileId + ", bankProvName=" + bankProvName + ", bankAreaName=" + bankAreaName + ", amount=" + amount
				+ ", notifyUrl=" + notifyUrl + ", remark=" + remark + "]";
	}
}
